package com.lyh.system.domain.resp;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.lyh.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "用户分页resp")
@Data
public class SysUserPageResq implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 用户ID */
    @ApiModelProperty(example = "主键")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userId;

    /** 用户账号 */
    @Excel(name = "账户")
    private String userName;

    /** 用户昵称 */
    @Excel(name = "用户名称")
    private String nickName;

    /** 手机号码 */
    @Excel(name = "手机号码")
    private String phonenumber;

    private String sex;

    /** 密码 */
    private String password;

    /** 帐号状态（0正常 1停用） */
    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
    private String status;

    @TableField(exist = false)
    private String statusName;

    /** 最后登录IP */
    @Excel(name = "最后登录IP", type = Excel.Type.EXPORT)
    private String loginIp;
    //头像
    private String avatar;

    /** 最后登录时间 */
    @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
    private Date loginDate;

    /** 会员id */
    @Excel(name = "会员id")
    private String memberId;

    //会员等级

    private Integer memberLeve;

    //会员等级
    @TableField(exist = false)
    private String memberLeveName;

    //门店长等级
    private String mstoreLeve;

    @TableField(exist = false)
    private String mstoreLeveNmae;
    //是否是顶级邀请人
    private Integer topInviteFlag;

    @TableField(exist = false)
    private String  topInviteName;

    //邀请码
    private String topInviteCode;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long parentId;

    //是否 有顶级
    private Integer topUserFlag;

    @TableField(exist = false)
    private String  topUserFlagName;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long topUserId;

    //  1 web  0 app
    private Integer isAdmin;

    //直接、间接推广人邀请码（会员id）,拼接--会员升级使用
    private String indirectInviteCodes;

    @Excel(name = "是否门店长")
    private Boolean isMstore;

    @ApiModelProperty(example = "账户余额")
    private BigDecimal accountBalance;

    @ApiModelProperty(example = "消费券")
    private BigDecimal consumerCouponNum;

    @ApiModelProperty(example = "资产通证")
    private BigDecimal assetEvidenceNum;



}
